热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

本题|程度_2021年下半年软件设计师上午真题答案及解析

篇首语:本文由编程笔记#小编为大家整理,主要介绍了2021年下半年软件设计师上午真题答案及解析相关的知识,希望对你有一定的参考价值。31、系统可维护性是指维护人员理解、改

篇首语:本文由编程笔记#小编为大家整理,主要介绍了2021年下半年软件设计师上午真题答案及解析相关的知识,希望对你有一定的参考价值。


31、系统可维护性是指维护人员理解、改正、改动和改进软件系统的难易程度,其评价指标不包括( )。
A、可理解性
B、可测试性
C、可修改性
D、一致性
参考答案:D
答案解析:
系统的可维护性可以定性的定义为:维护人员理解、改正、改动和改进这个软件的难易程度,其评价指标包括可理解性、可测试性和可修改性。

32、面向对象设计时包含的主要活动是( )。
A、认定对象、组织对象、描述对象间的相互作用、确定对象的操作
B、认定对象、定义属性、组织对象、确定对象的操作
C、识别类及对象、确定对象的操作、描述对象间的相互作用、识别关系
D、识别类及对象、定义属性、定义服务、识别关系、识别包
参考答案:D
答案解析:
考查关于面向对象的开发阶段:


  • 面向对象分析阶段:认定对象,组织对象,对象间的相互作用,基于对象的操作。
  • 面向对象设计阶段:识别类及对象、定义属性、定义服务、识别关系、识别包。
  • 面向对象程序设计:程序设计范型、选择一种OOPL。
  • 面向对象测试:算法层、类层、模板层、系统层。

33、在面向对象设计时,如果重用了包中的一个类,那么就要重用包中的所有类,这属于( )原则。
A、接口分离
B、开放-封闭
C、共同封闭
D、共同重用
参考答案:D
答案解析:


包和组件的设计原则

  • 重用-发布等价原则(Reuse-Release Equivalence Principle, REP):重用的粒度就是发布的粒度。
  • 共同重用原则(Common-Reuse Principle, CRP):一个组件中的所有类应该是共同重用的。如果重用了组件中的一个类,那么就要重用组件中的所有类。
  • 共同封闭原则(Common-Closure Principle, CCP):组件中的所有类对于同一种性质的变化应该是共同封闭的。一个变化若对一个封闭的组件产生影响,则对该组件中的 所有类产生影响,二对于其他组件则不造成任何影响。
  • 无环依赖原则(Acycle-Dependencies Principle, ADP):在组件的依赖关系图中不允许存在环。
  • 稳定依赖原则(Stable-Dependencies Principle, SDP):朝着稳定的方向进行依赖。
  • 稳定抽象原则(Stable-Abstraction Principle, SAP):组件的抽象程度应该与其稳定程度一致。

34、某电商系统在采用面向对象方法进行设计时,识别出网店、商品、购物车、订单买家、库存、支付(微信、支付宝)等类。其中,购物车与商品之间适合采用(1)关系,网店与商品之间适合采用(2)关系。

(1)
A、关联
B、依赖
C、组合
D、聚合
(2)
A、依赖
B、关联
C、组合
D、聚合
参考答案:D、C
答案解析:
本题考查UML类图的几种关系。


  • 关联关系:描述了一组链,链是对象之间的连接。
  • 依赖关系:一件事物发生改变影响到另一个事务。
  • 聚合关系:整体与部分生命周期不同的关系。
  • 组合关系:整体与部分生命周期相同的关系。

对于购物车和商品而言,网上商店的购物车要能够跟踪顾客所选的的商品,记录下所选商品,还要能随时更新,可以支付购买,能给顾客提供很大的方便。
购物车用于存放商品,购物车是整体,商品是部分,他们之间生命周期不同。属于聚合关系。
对于网店和商品而言,网点里面包含商品,属于整体和部分生命周期相同的情况,属于组合关系。

35、某软件系统限定&#xff1a;用户登录失败的次数不能超过3次。采用如所示的UML状态图对用户登录状态进行建模&#xff0c;假设活动状态是Logging in,那么当Valid Entry发生时&#xff0c;(1)。 其中&#xff0c;[tries<3]和tries&#43; &#43;分别为(2)和(3)。

(1)
A、保持在Logging in状态
B、若[tries<3]为true&#xff0c;则Logged in变为下一个活动状态
C、Logged in立刻变为下一个活动状态
D、若tries&#61;3为true&#xff0c;则Logging Denied变为下一个活动状态
(2)
A、状态
B、转换
C、监护条件
D、转换后效果
(3)
A、状态
B、转换
C、转换后效果
D、监护条件
参考答案&#xff1a;B、C、B
答案解析&#xff1a;
本题考查UML状态图的问题。


  • 通过状态图图示可知&#xff0c;假设活动状态是Logging in,那么当Valid Entry发生时&#xff0c;当限制条件【tries&#61;3】会到达Logging Denied状态&#xff0c;当限制条件【tries<3】会到达Logged in状态。针对于第一问的描述&#xff0c;仅有B符合状态图的表示。
  • [tries<3]和tries&#43; &#43;分别表示监护条件和转换&#xff0c;带有【】表示限制条件&#xff0c;没带【】的具体操作表示一个状态到另外一个状态的转换。

36、在某系统中&#xff0c;不同组(GROUP)访问数据的权限不同&#xff0c;每个用户(User)可以是一个或多个组中的成员&#xff0c;每个组包含零个或多个用户。现要求在用户和组之间设计映射&#xff0c;将用户和组之间的关系由映射进行维护&#xff0c;得到如下所示的类图。该设计采用(1)模式&#xff0c;用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。该模式属于(2)模式&#xff0c;该模式适用&#xff1a; (3)。

(1)
A、状态(State)
B、策略(Strategy)
C、解释器(Interpreter)
D、中介者(Mediator)
(2)
A、创建型类
B、创建型对象
C、行为型对象
D、行为型类
(3)
A、需要使用一个算法的不同变体
B、有一个语言需要解释执行&#xff0c;并且可将句子表示为一个抽象语法树
C、一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为
D、一组对象以定义良好但是复杂的方式进行通信&#xff0c;产生的相互依赖关系结构混乱且难以理解。
参考答案&#xff1a;D、C、D
答案解析&#xff1a;
本题考查设计模式的问题。
针对于题干和图示来看&#xff0c;不同组&#xff08;GROUP&#xff09;访问数据的权限不同&#xff0c;每个用户&#xff08;User&#xff09;可以是一个或多个组中的成员&#xff0c;每个组包含零个或多个用户。现要求在用户和组之间设计映射&#xff0c;将用户和组之间的关系由映射进行维护&#xff0c;在组和用户之间用UserGroupMapper实现两者的交互&#xff0c;两者之间不直接交互&#xff0c;用一个对象来封装系列的对象交互&#xff1b;使用户对象和组对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互&#xff0c;是典型关于中介者模式的描述和应用。

中介者模式属于行为型对象模型&#xff0c;可以适用于一组对象以定义良好但是复杂的方式进行通信&#xff0c;产生的相互依赖关系结构混乱且难以理解。

其中以下场景中A选项是对策略模式的描述&#xff0c;B选项是对解释器的描述&#xff0c;C选项是对状态模式的描述。

37、在设计某购物中心的收银软件系统时&#xff0c;要求能够支持在不同时期推出打折、返利、满减等不同促销活动&#xff0c;则适合采用( )模式。
A、策略(Strategy)
B、访问者(Visitor)
C、观察者(Observer)
D、中介者(Mediator)
参考答案&#xff1a;A
答案解析&#xff1a;
收银软件系统的计入规则有&#xff1a;打折、返利、满减三种不同的策略&#xff0c;每种策略之间封装起来&#xff0c;可以相互替换&#xff0c;使它们可以独立的变换&#xff0c;属于典型的策略模式。

38、Python语言的特点不包括( )。
A、跨平台、开源
B、编译型
C、支持面向对象程序设计
D、动态编程
参考答案&#xff1a;B
答案解析&#xff1a;
python语言的特点&#xff1a;跨平台、开源、简单易学、面向对象、可移植性、解释性、高级语言、可扩展性、丰富的库、动态编程等等。
综上所述B选项错误&#xff0c;python不是编译型语言&#xff0c;而是解释型语言。

39、在Python语言中&#xff0c;( )是一种可变的、有序的序列结构&#xff0c;其中元素可以重复。
A、元组(tuple)
B、字符串(str)
C、列表(list)
D、集合(set)
参考答案&#xff1a;C
答案解析&#xff1a;


  • python的基础数据结构有&#xff1a;列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set), 数字(num)
  • 列表(list)有序重复可变
  • 字典(dict)有序不重复可变
  • 元祖(tuple)有序重复不可变
  • 集合(set)无序无重复可变(还有个不可变集合frozenset)
  • 字符串(str)有序重复不可变
  • 数字(num)有序重复不可变

40、以下Python语言的模块中&#xff0c;( )不支持深度学习模型。
A、TensorFlow
B、Matplotlib
C、PyTorch
D、Keras
参考答案&#xff1a;B
答案解析&#xff1a;


  • TensorFlow&#xff1a;Tensorflow拥有多层级结构&#xff0c;可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算&#xff0c;被广泛应用于谷歌内部的产品开发和各领域的科学研究&#xff0c;支持Python语言深度学习。
  • PyTorch&#xff1a;PyTorch是一个针对深度学习&#xff0c;并且使用GPU和CPU来优化的tensor library&#xff08;张量库&#xff0c;是一个以Python优先的深度学习框架&#xff0c;不仅能实现强大的GPU加速&#xff0c;同时还支持动态的神经网络。
  • Keras&#xff1a;Keras是一个由Python编写的开源人工神经网络库&#xff0c;可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口&#xff0c;进行深度学习模型的设计、调试、评估、应用和可视化。
  • Matplotlib 是一个 Python 的 2D绘图库&#xff0c;它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形&#xff0c;不支持深度学习。

推荐阅读
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
author-avatar
泡乙唐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有